<?php

class AppController extends Controller {

    var $clave;
    var $fechaletra = array();

    function obtener_usuario() {
        $usu_id = $this->Session->read('usuario_id');
        $p = $this->Usuario->find('first', array('conditions' => array('Usuario.id' => $usu_id)));
        $this->set('data_usuario', $p);
    }

    function array_envia($array) {
        $tmp = serialize($array);
        $tmp = urlencode($tmp);
        return $tmp;
    }

    function buscador_listado($busq = null) {
        $busq = str_replace("'", '', $busq);
        $busq = str_replace('"', '', $busq);
        $busq = str_replace("<?", '<', $busq);
        if (empty($busq)) {
            $this->set('data_uno', null);
            $this->set('data_dos', null);
            $this->set('data_tres', null);
        } else {
            if (is_numeric($busq)) {
                $data = $this->Persona->find('all', array('conditions' => array('Persona.cedula like' => '%' . $busq . '%', 'Persona.estado' => 1), 'order' => 'Persona.nombres'));
                for ($i = 0; $i < count($data); $i++) {
                    if ($this->Session->read('tipo_usuario') != 1) {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id']);
                    } else {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id'], 'NO');
                    }
                }
                $this->set('data_uno', $data);
                $this->set('data_dos', null);
                $this->set('data_tres', null);
            } else {
                $ids = array();
                $ids[0] = 0;
                $busq = strtoupper($busq);
                $data = $this->Persona->find('all', array('conditions' => array('Persona.buscar like' => $busq . '%', 'Persona.estado' => 1), 'order' => 'Persona.nombres'));
                for ($i = 0; $i < count($data); $i++) {
                    $ids[($i + 1)] = $data[$i]['Persona']['id'];
                    if ($this->Session->read('tipo_usuario') != 1) {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id']);
                    } else {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id'], 'NO');
                    }
                }
                $this->set('data_uno', $data);
                $iaux = count($ids);
                if ($iaux <= 1) {
                    $data = $this->Persona->find('all', array('conditions' => array('Persona.buscar like' => '%' . $busq . '%', 'Persona.id <> ' => $ids[0], 'Persona.estado' => 1), 'order' => 'Persona.nombres'));
                } else {
                    $data = $this->Persona->find('all', array('conditions' => array('Persona.buscar like' => '%' . $busq . '%', 'Persona.id NOT ' => $ids, 'Persona.estado' => 1), 'order' => 'Persona.nombres'));
                }

                for ($i = 0; $i < count($data); $i++) {
                    $ids[($iaux + $i)] = $data[$i]['Persona']['id'];
                    if ($this->Session->read('tipo_usuario') != 1) {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id']);
                    } else {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id'], 'NO');
                    }
                }
                $this->set('data_dos', $data);

                $aux = split(" ", $busq);
                $cond = '';
                $palabras = null;
                for ($i = 0; $i < count($aux); $i++) {
                    $palabras[$i] = $aux[$i];
                    if ($i == 0) {
                        if (count($aux) > 1)
                            $cond.="(Persona.buscar like '%" . $aux[$i] . "%' or ";
                        else
                            $cond.="Persona.buscar like '%" . $aux[$i] . "%' ";
                    }
                    else if ($i < count($aux) - 1)
                        $cond.="Persona.buscar like '%" . $aux[$i] . "%' or ";
                    else
                        $cond.="Persona.buscar like '%" . $aux[$i] . "%')";
                }
                $iaux = count($ids);
                if ($iaux <= 1) {
                    $data = $this->Persona->find('all', array('conditions' => array('Persona.id <> ' => $ids[0], 'Persona.estado' => 1, 'or' => array($cond)), 'order' => 'Persona.nombres'));
                } else {
                    $data = $this->Persona->find('all', array('conditions' => array('Persona.id NOT ' => $ids, 'Persona.estado' => 1, 'or' => array($cond)), 'order' => 'Persona.nombres'));
                }
                for ($i = 0; $i < count($data); $i++) {
                    $ids[($iaux + $i)] = $data[$i]['Persona']['id'];
                    if ($this->Session->read('tipo_usuario') != 1) {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id']);
                    } else {
                        $data[$i]['Persona']['cantidad'] = $this->cantidad_solicitudes_departamento($data[$i]['Persona']['id'], 'NO');
                    }
                }
                $this->set('data_tres', $data);
                $this->set('palabras', $palabras);
            }
        }
        $this->set('busq', $busq);
        echo'<script type="text/javascript" language="javascript">
		// <![CDATA[
		     new Effect.Pulsate("resultsf")
		 // ]]>
        </script>';
    }

    function cantidad_solicitudes_departamento($idp, $con = NULL) {
        $d_id = $this->Session->read('departamento_id');
        $modelo = $this->obtener_modelo($d_id);
        /* if($d_id=='1') // DEPORTES
          {
          $modelo= 'S_deporte';
          }
          else if($d_id=='2') // ADULTO MAYOR
          {
          $modelo= 'S_adulto_mayor';
          }
          else if($d_id=='3') // CULTURA
          {
          $modelo= 'S_cultura';
          }
          else if($d_id=='4') // JUVENTUD
          {
          $modelo= 'S_juventud';
          }
          else if($d_id=='6') // VIOLENCIA INTRA FAMILIAR
          {
          $modelo= 'S_violencia';
          }
          else if($d_id=='7') // DISCAPACIDAD
          {
          $modelo= 'S_discapacidad';
          }
          else if($d_id=='9') // Derechos de la Mujer
          {
          $modelo= 'S_derechosmujer';
          } */
        if (!isset($con)) {
            $tabla = $this->$modelo->useTable;
            $qry = "select count(t.id) as cantidad from $tabla t where t.estado= 2 and t.persona_id= " . $idp;
            $a = $this->$modelo->query($qry);
            if (isset($a[0][0]['cantidad']) && $a[0][0]['cantidad'] > 0)
                $r = $a[0][0]['cantidad'];
            else
                $r = 0;
        }
        else {
            $tablas = array('s_adulto_mayors', 's_culturas', 's_deportes', 's_derecho_mujers', 's_discapacidads', 's_educacions', 's_juventuds', 's_violencias');
            $can = 0;
            for ($i = 0; $i < count($tablas); $i++) {
                $qry = "select count(t.id) as cantidad from " . $tablas[$i] . " t where t.estado= 2 and t.persona_id= " . $idp;
                $a = $this->Bitacora->query($qry);
                if (isset($a[0][0]['cantidad']) && $a[0][0]['cantidad'] > 0)
                    $c = $a[0][0]['cantidad'];
                else
                    $c = 0;
                $can+=$c;
            }
            $r = $can;
        }

        return $r;
    }

    function obtener_modelo($d_id = null) {
        if (!isset($d_id))
            $d_id = $this->Session->read('departamento_id');
        if ($d_id == '1') { // DEPORTES
            $modelo = 'S_deporte';
        } else if ($d_id == '2') { // ADULTO MAYOR
            $modelo = 'S_adulto_mayor';
        } else if ($d_id == '3') { // CULTURA
            $modelo = 'S_cultura';
        } else if ($d_id == '4') { // JUVENTUD
            $modelo = 'S_juventud';
        } else if ($d_id == '5') { // EDUCACION
            $modelo = 'S_educacion';
        } else if ($d_id == '6') { // VIOLENCIA INTRA FAMILIAR
            $modelo = 'S_violencia';
        } else if ($d_id == '7') { // DISCAPACIDAD
            $modelo = 'S_discapacidad';
        } else if ($d_id == '8') { // Derechos de la Mujer
            $modelo = 'S_derecho_mujer';
        }
        return $modelo;
    }

    function cadena() {
        $cadena = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-'#%/()=?[:}{+*\"";
        $tam = 12;
        $clave = "";
        $max = strlen($cadena) - 1;
        for ($i = 0; $i < $tam; $i++) {
            $this->clave .= substr($cadena, rand(0, $max), 1);
        }
    }

    function f_actual() { // lista
        return date('Y-m-d');
    }

    function ver_fecha($f = null) { // lista
        return substr($f, 8, 2) . "-" . substr($f, 5, 2) . "-" . substr($f, 0, 4);
    }

    function guar_fecha($f = null) {
        return substr($f, 6, 4) . "-" . substr($f, 3, 2) . "-" . substr($f, 0, 2);
    }

    function mayuscula($t) { // lista
        return trim(addslashes(strtr(strtoupper($t), "àèìòùáéíóúçñäëïöü", "ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ")));
    }

    function con_clave($t) { // lista
        return trim(addslashes(md5($t)));
    }

    function lista() {
        $nivelestulis = array('PRIMARIA' => 'PRIMARIA', 'BASICO' => 'BASICO', 'DIVERSIFICADO' => 'DIVERSIFICADO', 'TECNICO SUPERIOR UNIVERSITARIO' => 'TECNICO SUPERIOR UNIVERSITARIO', 'UNIVERSITARIO' => 'UNIVERSITARIO');
        $this->set('nivelestulis', $nivelestulis);
        $sexo = array('FEMENINO' => 'FEMENINO', 'MASCULINO' => 'MASCULINO');
        $this->set('sexolis', $sexo);
        $nac_lista = array('V' => 'V', 'E' => 'E');
        $this->set('nac_lista', $nac_lista);
        $rif = array('JURIDICO' => 'J', 'GUBERNAMENTAL' => 'G', 'VENEZOLANO' => 'V', 'EXTRANJERO' => 'E');
        $this->set('riflis', $rif);

        $rif_letra = array('J' => 'J', 'G' => 'G', 'V' => 'V', 'E' => 'E');
        $this->set('lista_rif_letra', $rif_letra);

        $estadocivil = array('SOLTERO(A)' => 'SOLTERO(A)', 'CASADO(A)' => 'CASADO(A)', 'VIUDO(A)' => 'VIUDO(A)', 'DIVORCIADO(A)' => 'DIVORCIADO(A)');
        $this->set('estadolis', $estadocivil);
        $admin = array('1' => 'SUPER ADMINISTRADOR', '2' => 'ADMINISTRADOR DEPARTAMENTO', '3' => 'EMPLEADO');
        $this->set('tipolis', $admin);

        $anio30 = array((date('Y') - 0) => (date('Y') - 0), (date('Y') - 1) => (date('Y') - 1), (date('Y') - 2) => (date('Y') - 2), (date('Y') - 3) => (date('Y') - 3), (date('Y') - 4) => (date('Y') - 4), (date('Y') - 5) => (date('Y') - 5), (date('Y') - 6) => (date('Y') - 6), (date('Y') - 7) => (date('Y') - 7), (date('Y') - 8) => (date('Y') - 8), (date('Y') - 9) => (date('Y') - 9), (date('Y') - 10) => (date('Y') - 10), (date('Y') - 11) => (date('Y') - 11), (date('Y') - 12) => (date('Y') - 12), (date('Y') - 13) => (date('Y') - 13), (date('Y') - 14) => (date('Y') - 14), (date('Y') - 15) => (date('Y') - 15), (date('Y') - 16) => (date('Y') - 16), (date('Y') - 17) => (date('Y') - 17), (date('Y') - 18) => (date('Y') - 18), (date('Y') - 19) => (date('Y') - 19), (date('Y') - 20) => (date('Y') - 20), (date('Y') - 21) => (date('Y') - 21), (date('Y') - 22) => (date('Y') - 22), (date('Y') - 23) => (date('Y') - 23), (date('Y') - 24) => (date('Y') - 24), (date('Y') - 25) => (date('Y') - 25), (date('Y') - 26) => (date('Y') - 26), (date('Y') - 27) => (date('Y') - 27), (date('Y') - 28) => (date('Y') - 28), (date('Y') - 29) => (date('Y') - 29), (date('Y') - 30) => (date('Y') - 30));
        $this->set('anio30', $anio30);
        $sino = array('SI' => 'SI', 'NO' => 'NO');
        $this->set('sino', $sino);
    }

    function verifica_cedula_ciudadano_int($m, $id = NULL) {
        $res = true;
        if (isset($id))
            $cond = "Persona.id <> $id and Persona.cedula ='$m'";
        else
            $cond = "Persona.cedula ='$m'";
        $RS = $this->Persona->findCount($cond);
        if ($RS > 0)
            $res = false;
        return $res;
    }

    function id_usuario() { // lista
        $id_f = $this->Session->read('usuario_id');
        return $id_f;
    }

    function diferencias_dias($fecha1, $fecha2 = null) { // lista
        if ($fecha2 == null) {
            $ano2 = date('Y');
            $mes2 = date('m');
            $dia2 = date('d');
        } else {
            $ano2 = substr($fecha2, 0, 4);
            $mes2 = substr($fecha2, 5, 2);
            $dia2 = substr($fecha2, 8, 2);
        }
        $ano1 = substr($fecha1, 0, 4);
        $mes1 = substr($fecha1, 5, 2);
        $dia1 = substr($fecha1, 8, 2);
        $segundos_diferencia = mktime(0, 0, 0, $mes2, $dia2, $ano2) - mktime(0, 0, 0, $mes1, $dia1, $ano1);
        $dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
        $dias_diferencia = floor($dias_diferencia);
        return $dias_diferencia;
    }

    function crear_fecha($diamas = null) {
        $dia = date('d');
        $mes = date('m');
        $anio = date('Y');
        $dia-=$diamas;
        if ($dia < 1) {
            $mes-=1;
            if ($mes < 1) {
                $mes = 12;
                $anio-=1;
            }
            if ($mes == 2) {
                if (($anio % 4 == 0 && $anio % 100 != 0) || $anio % 400 == 0)
                    $b = 29;
                else
                    $b = 28;
            }
            else if ($mes <= 7) {
                if ($mes % 2 == 0)
                    $b = 30;
                else
                    $b = 31;
            }
            else if ($mes > 7) {
                if ($mes % 2 == 0)
                    $b = 31;
                else
                    $b = 30;
            }
            $dia = $b + $dia;
        }
        if ($dia < 10)
            $dia = "0$dia";
        if ($mes < 10)
            $mes = "0$mes";
        return "$anio-$mes-$dia";
    }

    function validar_sistema() {
         /*
          $sql="select a.* from actualizaciones a where estado=1";
          $r=$this->Bitacora->query($sql);
          if($this->diferencias_dias($r[0]['a']['fecha_antier'])==2 && $this->diferencias_dias($r[0]['a']['fecha_ayer'])==1 && $this->diferencias_dias($r[0]['a']['fecha_hoy'])==0) return 1;
          else return 0;
          */
        return 1;
    }

    function iniciar_sistema() {

        /*
          $sql="select a.* from actualizaciones a where estado=1";
          $r=$this->Bitacora->query($sql);
          if($this->diferencias_dias($r[0]['a']['fecha_antier'])==2 && $this->diferencias_dias($r[0]['a']['fecha_ayer'])==1 && $this->diferencias_dias($r[0]['a']['fecha_hoy'])==0)
          {
          $valido=0;
          }
          else
          {
          $fu= $this->crear_fecha(3); $fd= $this->crear_fecha(2);  $ft= $this->crear_fecha(1);
          $s="update actualizaciones set fecha_antier='".$fu."', fecha_ayer='".$fd."', fecha_hoy='".$ft."' where estado=1;";
          $this->Bitacora->query($s);
          }
          if(!$this->validar_sistema())
          {
          $fu= $this->crear_fecha(2); $fd= $this->crear_fecha(1);
          $sql="select a.* from actualizaciones a where estado=1";
          $r=$this->Bitacora->query($sql);
          $sql="update usuarios set conectado=0 where conectado=1;";
          $this->Bitacora->query($sql);
          $sql="update citas set estado=4 where fecha <= '".$r[0]['a']['fecha_hoy']."' and estado=1;";
          $this->Bitacora->query($sql);
          $sql="update horarios set estado=2 where hasta <= '".$fd."' and estado=1;";
          $this->Bitacora->query($sql);
          $sql="update actualizaciones set fecha_antier='".$fu."', fecha_ayer='".$fd."', fecha_hoy='".date('Y-m-d')."' where estado=1;";
          $this->Bitacora->query($sql);
          }


         */
        return $this->validar_sistema();
    }
   
    
  //  function checkSession() { if($this->Session->check('Autenticado')==true) { $this->redirect('/Entrada/salir'); } }
    
    function validar() {
       // if (!$this->validar_sistema())
        //    $this->redirect('/Entrada/salir');
        if ($this->Session->read('Autenticado') == false)
        //    $this->redirect('/Entrada/salir');
        $this->redirect('/Entrada/salir_interno');
      //  $fun = $this->Session->read('usuario_id');
      //  $conec = $this->Usuario->findCount("Usuario.id=$fun AND Usuario.conectado=1");
   //     if ($conec)
  //         $this->redirect('/Entrada/salir');
  //     $this->set('tipo_usuario', $this->Session->read('tipo_usuario'));
   //     $this->set('username', $this->Session->read('username'));
    }

/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////

    /*
    function estados($pais = null) {  //lista
        if ($pais == null)
            $this->set('estado', null);
        else {
            $estado = $this->Estado->find('list', array('fields' => array('Estado.id', 'Estado.nombre'), 'conditions' => array('Estado.pais_id' => $pais, 'Estado.estado' => 1), 'order' => 'Estado.nombre'));
            $this->set('estado', $estado);
        }
    }
*/
    function municipios($estado = null) { //lista
        if ($estado == null)
            $this->set('municipio', null);
        else {
            $municipio = $this->Municipio->find('list', array('fields' => array('Municipio.id', 'Municipio.nombre'), 'conditions' => array('Municipio.estado_id' => $estado, 'Municipio.estado' => 1), 'order' => 'Municipio.nombre'));
            $this->set('municipio', $municipio);
        }
    }

    function parroquias($municipio = null) {  //lista
        if ($municipio == null)
            $this->set('parroquia', null);
        else {
            $parroquia = $this->Parroquia->find('list', array('fields' => array('Parroquia.id', 'Parroquia.nombre'), 'conditions' => array('Parroquia.municipio_id' => $municipio, 'Parroquia.estado' => 1), 'order' => 'Parroquia.nombre'));
            $this->set('parroquia', $parroquia);
        }
    }

    function verifica_rif_proveedor($rif = null) {  //lista
        $proveedor = $this->Proveedor->find('first', array('conditions' => array('rif' => $rif), 'fields' => array('nombre'), 'order' => 'id desc'));

        if (empty($proveedor['Proveedor']['nombre']) or $proveedor['Proveedor']['nombre'] == '')
            $proveedor_ = 0;
        else
            $proveedor_ = 1;

        return $proveedor_;
    }

    function mensaje_error($cont = null, $funt = null, $cam = null) {  //lista
        $cam = explode('_error', $cam);
        if (isset($cam[1]))
            $cam = $cam[0] . '_error';
        else
            $cam = $cam[0];

        $mensaje = $this->Mensaje->find('first', array('conditions' => array('estado' => 1, 'controlador' => $cont, 'funcion' => $funt, 'campo' => $cam), 'fields' => array('mensaje'), 'order' => 'id desc'));

        if (empty($mensaje['Mensaje']['mensaje']) or $mensaje['Mensaje']['mensaje'] == '')
            $mensj = 'Mensaje sin Configurar';
        else
            $mensj = $mensaje['Mensaje']['mensaje'];
        $men = $mensj . ' --> ( [' . $cont . '] - [' . $funt . '] - [' . $cam . '] )';


        $this->set('Error', $men);

        $cam = explode('_error', $cam);
        $cam = $cam[0];
        $this->focus($cam);

        
    }
    function focus ($cam){
      echo "<script type=\"text/javascript\" language=\"javascript\">document.getElementById('$cam').focus()</script>";
    }

    function consulta($id = null, $modelo = null, $campo = null) {
        $valor = $this->$modelo->find('first', array('conditions' => array("$modelo.id" => $id), 'order' => "$modelo.id"));
        return $valor["$modelo"]["$campo"];
    }

    function actualizar_estado($id = null, $modelo = null, $estado = null) {
        if ($estado == 0)
           $estado=1;
        else
           $estado=0;
            // echo 'juan='.$estado;
            $this->data = null;
            $this->data["$modelo"]['id'] = $id;
            $this->data["$modelo"]['estado'] = $estado;
        $this->$modelo->save($this->data);
        //return $valor;
    }

    function pelfil($id = null) {
        $usuario = $this->Usuario->find('first', array('conditions' => array('Usuario.estado' => 1), 'order' => 'Usuario.id'));
        return $usuario['Usuario']['perfil_id'];
    }

    function guardar_input($id = null, $modelo = null, $campo = null, $value = null) {

        if ($value != '') {
            $this->data = null;
            $this->data["$modelo"]["id"] = $id;
            $this->data["$modelo"]["$campo"] = $value;
            $this->$modelo->save($this->data);
        }
    }

    function str($busq = null) {
        $busq = str_replace("'", '', $busq);
        $busq = str_replace('"', '', $busq);
        $busq = str_replace("<?", '<', $busq);
        //$this->set('Error','No Puede Tener Caracteres Especiales');
        return $busq;
    }

    function findlist($modelo = null, $campo = null, $id = null) {

        if (isset($campo) and isset($id)) {

            $valor = $this->$modelo->find('list', array('fields' => array("$modelo.id", "$modelo.nombre"), 'conditions' => array("$modelo.$campo" => $id, "$modelo.estado" => 1), 'order' => "$modelo.nombre"));
        } else {
//echo $modelo.' - '.$campo.' - '.$id;
            $valor = $this->$modelo->find('list', array('fields' => array("$modelo.id", "$modelo.nombre"), 'conditions' => array("$modelo.estado" => 1), 'order' => "$modelo.nombre"));
        }

        return $valor;
    }

    function miles($numero) {
        return number_format($numero, 2, ',', '.');
    }

    function quitarmiles($variable) {
        $sig[] = '.';
        $sig[] = ',';
        return str_replace($sig, '', $variable);
    }

    function redondear_dos_decimal($valor) {
        $float_redondeado = round($valor * 100) / 100;
        return $float_redondeado;
    }

///////////////////////////////////////////////////////////////////////////

    function all($modelo = null, $estado = null) {

        if (isset($estado)) {
            //      echo $estado;
            if ($estado == 0)
                $valor = $this->$modelo->find('all', array('conditions' => array("$modelo.estado" => 0), 'order' => "$modelo.id"));
            else if ($estado == 1)
                $valor = $this->$modelo->find('all', array('conditions' => array("$modelo.estado" => 1), 'order' => "$modelo.id"));
        }
        else {
            $valor = $this->$modelo->find('all', array('order' => "$modelo.id"));
        }
        if (count($valor) == 0) {
            $valor = null;
        }
         //Debugger::dump($valor);
        return $valor;
    }


    function allcon($modelo = null, $estado = null,$id,$campo){
     if ($estado == 0)
      $valor = $this->$modelo->find('all', array('conditions' => array("$modelo.estado" => 0,"$modelo.$campo" => $id), 'order' => "$modelo.id"));
     else if ($estado == 1)
      $valor = $this->$modelo->find('all', array('conditions' => array("$modelo.estado" => 1,"$modelo.$campo" => $id), 'order' => "$modelo.id"));
     else
      $valor = $this->$modelo->find('all', array('conditions' => array("$modelo.$campo" => $id), 'order' => "$modelo.id"));
     
     return $valor;
     
    
    }
    
    
        function allilike($modelo = null, $estado = null, $campo =null, $var =null) {

          
        if (isset($estado)) {
            //      echo $estado;
            if ($estado == 0)
                $valor = $this->$modelo->find('all', array('conditions' => array("$modelo.$campo ilike " => $var,"$modelo.estado" => 0), 'order' => "$modelo.id","limit"=>10));
            else if ($estado == 1)
                $valor = $this->$modelo->find('all', array('conditions' => array("$modelo.$campo ilike " => $var,"$modelo.estado" => 1), 'order' => "$modelo.id","limit"=>10));
        }
        else {
            $valor = $this->$modelo->find('all', array('order' => "$modelo.id"));
        }
        if (count($valor) == 0) {
            $valor = null;
        }
        return $valor;
    }
    
    
    

    function script($diva = null, $divb = null) {
        if ($diva == 0 and $divb != 0) {
            echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('" . $divb . "').style.display='none';
     		        </script>";
        } else if ($diva == 0 and $divb != 0) {
            echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('" . $diva . "').style.display='block';
     		        </script>";
        } else {
            echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('" . $divb . "').style.display='none';
			document.getElementById('" . $diva . "').style.display='block';
     		        </script>";
        }
    }

    function div($div) {
        if ($div == 'l')
            $div = 'listado';
        else
            $div = 'vista';
        return $div;
    }

    function ftodo($modelo,$campo=null,$cond=null, $set=false) {
            //$this->params=array('sort'=>'id', 'url'=>array(), 'pass'=>array(), 'named'=>array());
            //$options['order'] = array("id" => "ASC");
            //email($check, $deep = false, $regex = null)
        if($cond!=null)
              $data=$this->paginate("$modelo",array("$modelo.estado" => array(1, 0),"$modelo.$campo" =>$cond));
        else
              $data=$this->paginate("$modelo",array("$modelo.estado" => array(1, 0)));
              if($set!=true)
              $this->set('data', $data);
              return $dato=$data;  
    }
    
    /*
    function ftodogroup($modelo,$datos=null){
               
              $data=$this->paginate("$modelo",array("$modelo.estado" => array(1, 0)));
              $this->set('data', $data);
    }
    */
    function rif($tipo=null) {
    if($tipo=='J')
      $rif=array('V'=>'V','J'=>'J','G'=>'G');
    else if($tipo=='P')
      $rif=array('V'=>'V','E'=>'E');
    else
      $rif=array('V'=>'V','E'=>'E','J'=>'J','G'=>'G');
              $this->set('rif', $rif);
    }    
    
    function select($modelo,  $estado = null, $campo = null, $id = null, $order = null ) {  //lista
      
     // echo 'juan='.$modelo.'------'.$estado.'------'.$campo.'------'.$id;
      if($order!=null) $ord='id';
      else $ord='nombre';
      
      if($campo!=null and $id!=null){
       $data = $this->$modelo->find('list', array('fields' => array("$modelo.id", "$modelo.nombre"), 'conditions' => array("$modelo.$campo" => $id, "$modelo.estado" => 1), 'order' => "$modelo.$ord"));
      }
      else{
        if($estado!=null)
       $data = $this->$modelo->find('list', array('fields' => array("$modelo.id", "$modelo.nombre"), 'conditions' => array("$modelo.estado" => $estado), 'order' => "$modelo.$ord"));
        else
       $data = $this->$modelo->find('list', array('fields' => array("$modelo.id", "$modelo.nombre"), 'conditions' => null, 'order' => "$modelo.$ord"));
          
      }  
      $this->set($modelo, $data);
      return $dato=$data;  
    //  $this->set('data', $data);
      
      /*
        if ($municipio == null)
            $this->set('parroquia', null);
        else {
            $parroquia = $this->Parroquia->find('list', array('fields' => array('Parroquia.id', 'Parroquia.nombre'), 'conditions' => array('Parroquia.municipio_id' => $municipio, 'Parroquia.estado' => 1), 'order' => 'Parroquia.nombre'));
            $this->set('parroquia', $parroquia);
        }
       */
    }
    
    
    

    function funo($modelo, $id) {
        $data = $this->$modelo->find('first', array('conditions' => array("$modelo.id" => $id)));
        $this->set('data', $data);
        return $data;
    }
/*
    function organizacion() {
        $organizacion = $this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre'), 'conditions' => array('Organizacion.estado' => 1), 'order' => 'Organizacion.nombre'));
        return $organizacion;
    }
        function division() {
        $division = $this->Division->find('list', array('fields' => array('Division.id', 'Division.nombre'), 'conditions' => array('Division.estado' => 1), 'order' => 'Division.nombre'));
        return $division;
    }
        function almacen() {
        $almacen = $this->Almacen->find('list', array('fields' => array('Almacen.id', 'Almacen.nombre'), 'conditions' => array('Almacen.estado' => 1), 'order' => 'Almacen.nombre'));
        return $almacen;
    }
*/
        function estados() {
        $estado = $this->Estado->find('list', array('fields' => array('Estado.id', 'Estado.nombre'), 'conditions' => array('Estado.estado' => 1), 'order' => 'Estado.nombre'));
        return $estado;
    }
    
    function auditoria($id,$modelo,$accion )
    {
         $this->data['Bitacora']['usuario_id'] = $this->Session->read('usuario_id');
         $this->data['Bitacora']['fecha'] = $this->f_actual();
         $this->data['Bitacora']['hora'] = date('h:i:s:a');
         $this->data['Bitacora']['accion'] = $accion;
                $this->data['Bitacora']['modelo'] = $modelo;
                $this->data['Bitacora']['accion_id'] = $id;
                if ($this->Bitacora->save($this->data)) {
                   return true;
                } else {
                    return false;
                }
    }
    function anio($max=null){
      
       $anios = array();
       if($max==null)$max=50;
       for($i=0; $i<$max; $i++){
         $anios[(date('Y')-$i)] = (date('Y')-$i);
       }
       $this->set('anio', $anios);
    }
    
    function buscador($donde = null, $valor = null) {
     //   echo $donde.'---'.$valor;
        $valor = $this->rephp($valor);
        $valores = explode('VALORES', $donde);



        if (isset($valores[1]) and isset($valores[2]) and isset($valores[3])) {
            $controlador = $valores[1];
            $vista = $valores[2];
            $modelo = $valores[3];
           
            $campos = $this->$modelo->query("SELECT * FROM information_schema.columns WHERE table_name = 'sv_" . $this->$modelo->useTable . "'");
            $todo = '';
            for ($i = 0; $i < count($campos); $i++) {

                $model = $this->$modelo->relaccion;
                if (isset($model[$i])) {
                    $todo.='"sp_ascii(' . $model[$i] . '.nombre)' . '"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
                if (in_array($campos[$i][0]['column_name'], $this->$modelo->busqueda)) {
                    $todo.='"sp_ascii(' . $modelo . '.' . $campos[$i][0]['column_name'] . ')"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
            }
            $tod = substr($todo, 0, -3);
            $condicion = array("or" => array($tod));
            $data = $this->$modelo->find('all', array('conditions' => $condicion, 'order' => "$modelo.id", 'limit'=>"20"));
            //$data = $this->paginate("$modelo",array($condicion));
            // $data=$this->paginate("$modelo",array("$modelo.estado" => array(1, 0)));
            
        } else {
            $data = null;
        }
        $this->set('paginador', 'vacio');
        
        $this->set('data', $data);
        $this->set('busq', $valor);
        $this->set('donde', $donde);
        if (isset($valores[1]) and isset($valores[2]) and isset($valores[3]))
            $this->render("../$controlador/$vista");
    }
    function rephp($valor){
        $valor = str_replace("'", '', $valor);
        $valor = str_replace('"', '', $valor);
        $valor = str_replace("<?", "<", $valor);
        $valor = strtoupper($valor);
        $valor = $this->mayuscula($valor);
        return $valor;
    }
    
    
    
    
    
    

}
?>

